﻿-- =============================================
-- Author:		GMH
-- Create date: 15/08/2012
-- Description:	
-- exec spReporteRecibo 1,1,1
-- =============================================
CREATE PROCEDURE [dbo].[spReporteRecibo]
	@pnRecibo			INT,
	@pnIdLaboratorio	INT,
	@pnIdSucursal		INT
AS
BEGIN
	SET NOCOUNT ON;
	DECLARE @nIdPaciente INT
	
	SELECT	@nIdPaciente = IdPaciente
	FROM	dbo.Recibo
	WHERE	IdRecibo		= @pnRecibo
	AND		IdLaboratorio	= @pnIdLaboratorio 
	
	SELECT	p.IdPaciente,
			p.IdLaboratorio,
			lab.Nombre AS NombreLab,
			lab.CedulaTitular,
			lab.RegSSA,
			lab.Titular,
			p.Calle  + ' ' + CAST(ISNULL(p.NumeroExt, p.NumeroInt) AS VARCHAR(10)) + ', ' + c2.NombreColonia + ', ' + m2.NombreMunicipio  + ', ' + e2.NombreEstado + ' C.P. '+ CAST(p.CodigoPostal AS VARCHAR(20)) AS DirLab,
			NULL AS LogoArchivo,--lab.LogoArchivo,
			ti.Descripcion + ' ' + p.Nombre + ' ' + p.ApellidoPaterno + ' ' + ISNULL(p.ApellidoMaterno,'') AS Nombre,
			CAST(p.Edad AS VARCHAR(10)) + ' ' + t.Descripcion AS Anios,
			p.Calle  + ' ' + CAST(ISNULL(p.NumeroExt, p.NumeroInt) AS VARCHAR(10)) + ', ' + c.NombreColonia + ', ' + m.NombreMunicipio + ' C.P. '+ CAST(p.CodigoPostal AS VARCHAR(20)) AS Dir,
			p.Telefono,
			pro.Descripcion AS Procedencia,
			p.fur,
			doc.Nombre AS Doc,
			r.IdRecibo,
			r.Importe,
			r.ImporteIva,
			r.Importe + r.ImporteIva AS ImporteTotal,
			rd.IdEstudio,
			CASE WHEN rd.EsPaquete = 0 THEN e.NombreEstudio WHEN rd.EsPaquete = 1 THEN pe.Descripcion + CHAR(13) + CHAR(10)+  CHAR(9) + dbo.fnObtenEstudiosPaquete(rd.IdEstudio, rd.IdLaboratorio) ELSE '' END AS NombreEstudio,
			rd.Importe + rd.ImporteIva AS ImporteDetalle,
			rd.EsCortesia,
			rd.EsPaquete,
			CASE WHEN rd.EsPaquete = 1 THEN dbo.fnObtenEstudiosPaquete(rd.IdEstudio, rd.IdLaboratorio) ELSE '' END EstudiosPaquete
    FROM	dbo.CatPaciente		p
    INNER JOIN dbo.CatLaboratorio	lab
    ON		p.IdLaboratorio	= lab.IdLaboratorio
    INNER JOIN dbo.Recibo		r
    ON		r.IdRecibo		= @pnRecibo
    AND		p.IdLaboratorio	= r.IdLaboratorio
    AND		p.IdSucursal	= r.IdSucursal
    INNER JOIN dbo.ReciboDet	rd
    ON		r.IdRecibo		= rd.IdRecibo 
    AND		r.IdLaboratorio = rd.IdLaboratorio 
    AND		r.IdSucursal	= rd.IdSucursal
    LEFT JOIN dbo.CatEstudio	e
    ON		rd.IdLaboratorio= e.IdLaboratorio 
    AND		rd.IdEstudio	= e.IdEstudio
    AND		rd.EsPaquete	= 0
    LEFT JOIN dbo.PaqueteEstudio pe
    ON		rd.IdLaboratorio= pe.IdLaboratorio 
    AND		rd.IdEstudio	= pe.IdPaquete
    AND		rd.EsPaquete	= 1
    INNER JOIN dbo.CatTiempo	t
    ON		p.IdTiempo		= t.IdTiempo
    INNER JOIN dbo.CatTitulo	ti
    ON		p.IdTitulo		= ti.IdTitulo
    LEFT JOIN dbo.CatColonia	c
    ON		p.IdColonia		= c.IdColonia
    AND		p.IdMunicipio	= c.IdMunicipio
    AND		p.IdEstado		= c.IdEstado
    LEFT JOIN dbo.CatMunicipio	m
    ON		p.IdMunicipio	= m.IdMunicipio 
    AND		p.IdEstado		= m.IdEstado
    LEFT JOIN dbo.CatColonia	c2
    ON		lab.IdColonia		= c2.IdColonia
    AND		lab.IdMunicipio	= c2.IdMunicipio
    AND		lab.IdEstado		= c2.IdEstado
    LEFT JOIN dbo.CatMunicipio	m2
    ON		lab.IdMunicipio	= m2.IdMunicipio 
    AND		lab.IdEstado		= m2.IdEstado
    LEFT JOIN dbo.CatEstado	e2
    ON		lab.IdEstado	= e2.IdEstado
    LEFT JOIN dbo.CatProcedencia pro
    ON		p.IdProcedencia = pro.IdProcedencia
    AND		p.IdLaboratorio	= pro.IdLaboratorio
    AND		p.IdSucursal	= pro.IdSucursal
    LEFT JOIN dbo.CatDoctor	doc
    ON		p.IdDoctor		= doc.IdDoctor
    AND		p.IdLaboratorio	= doc.IdLaboratorio
    AND		p.IdSucursal	= doc.IdSucursal
    WHERE	p.IdPaciente	= @nIdPaciente
    AND		p.IdLaboratorio	= @pnIdLaboratorio
    AND		p.EsActivo		= 1
    AND		p.IdSucursal	= @pnIdSucursal
	
	SET NOCOUNT OFF;
END